package at.spengergasse.web.servlet.mitarbeiter;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import at.spengergasse.dao.MitarbeiterDao;
import at.spengergasse.dao.derby.MitarbeiterDaoDerbyImpl;
import at.spengergasse.web.EntryPointURLEnum;
import at.spengergasse.web.servlet.LoginServlet;

@SuppressWarnings("serial")
public abstract class AbstractMitarbeiterServlet extends LoginServlet
{

	public AbstractMitarbeiterServlet() throws Exception
	{
		super();
		// TODO Auto-generated constructor stub
	}

	protected static MitarbeiterDao mitarbeiterDao = new MitarbeiterDaoDerbyImpl();

	protected Long checkMitarbeiterIdParam(HttpServletRequest req,
			HttpServletResponse resp) throws ServletException, IOException
	{
		Long mitarbeiterId = null;
		try
		{
			mitarbeiterId = Long.valueOf(req
					.getParameter(MitarbeiterFieldNames.ID));
		} catch (Exception e)
		{
			log.warn("problems with given mitarbeiterId!", e);
		}

		if (mitarbeiterId == null)
		{
			redirectToMitarbeiterList(req, resp, "wrong mitarbeiterId");
			return null;
		}
		return mitarbeiterId;
	}

	protected void redirectToMitarbeiterList(HttpServletRequest req,
			HttpServletResponse resp) throws ServletException, IOException
	{
		redirectToMitarbeiterList(req, resp, null);
	}

	protected void redirectToMitarbeiterList(HttpServletRequest req,
			HttpServletResponse resp, String errorMessage)
			throws ServletException, IOException
	{
		if (errorMessage != null)
		{
			req.getSession(true).setAttribute("errorMessage", errorMessage);
		}
		resp.sendRedirect(EntryPointURLEnum.MITARBEITER_LIST_ALL.getUrl());
	}

}
